package ar.uade.distribuidas.tpo.dba.dao;

import java.rmi.RemoteException;
import java.util.List;

import org.hibernate.Session;

import ar.uade.distribuidas.tpo.base.dominiodto.OrdenDeCompraDTO;
import ar.uade.distribuidas.tpo.dba.dominio.OrdenDeCompra;
import ar.uade.distribuidas.tpo.dba.dominio.Rodamiento;
import ar.uade.distribuidas.tpo.dba.hbt.HibernateDAO;

public class OrdenDeCompraDAO extends HibernateDAO {
			
		public static OrdenDeCompraDAO instancia;
		
		public OrdenDeCompraDAO() {
			super();
		}
		
		public static OrdenDeCompraDAO getInstancia(){
			if (instancia == null){
				instancia = new OrdenDeCompraDAO();
			}
			return instancia;
		}
		
		public OrdenDeCompra getOC(int numero)throws RemoteException{
			Session session = this.getSession();
			session.clear();
			@SuppressWarnings("unchecked")
			List<OrdenDeCompra> oc = (List<OrdenDeCompra>) this.getSession().createQuery("from OrdenDeCompra where numero = :numero").setParameter("numero", numero).list();		
			
			//session.close();
			
			if(oc != null && !oc.isEmpty())
				return oc.get(0);
			else
				return null;
			
		}
		
		public int getLastNumber() {
			Session session = this.getSession();
			session.clear();
			int r = (int) session.createQuery("select COALESCE(MAX(numero), 0) from OrdenDeCompra").uniqueResult();
			//session.close();
			return r;
		}

		/*public int getNumero(OrdenDeCompraDTO ordenDto) {
			
Session session = sf.openSession();
			
			OrdenDeCompra oc = (OrdenDeCompra) session.createQuery("from OrdenDeCompra where fecha = :fecha and estado = :estado)"
					.setParameter("numero", ord)
				
					.setParameter("nroSerie", ord)
					.setParameter("sufijo", sufijo)
					.setParameter("marca", marca)
					.setParameter("pais", origen)
					.uniqueResult();
			
			session.close();
			
		}
*/
		
}
